package ae.pcfc.cldos.online.common.clddb.domain;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.hibernate.envers.Audited;

import ae.pcfc.cldos.online.common.domain.BaseEntity;


/**
 * The persistent class for the T_CLDOS_PASSPORT_DETAILS database table.
 * 
 */
@Entity
@Table(name="T_CLDOS_PASSPORT_DETAILS")
@Audited
public class PassportDetail extends BaseEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	public static final String PASSPORT_NAME_EN = "ppPsprtNameEng";
	public static final String PASSPORT_NO = "ppPsprtNo";
	
	@Id
	@GeneratedValue(generator="SQ_CLDOS_APP_ID")
	@GenericGenerator(name = "SQ_CLDOS_APP_ID",  strategy="foreign", parameters=@Parameter(name="property", value="EmployeeDetail"))
	@Column(name="APPLICATION_ID")
	private Long applicationId;
	
	@Column(name="PP_PSPRT_NO")
	private String ppPsprtNo;
	

	@Column(name="PP_NAME_IN_PSPRT_ENG")
	private String ppPsprtNameEng;
	

	@Column(name="PP_NAME_IN_PSPRT_ARB")
	private String ppPsprtNameArb;
	

    @Temporal( TemporalType.DATE)
	@Column(name="PP_EXPIRY_DATE")
	private Date ppExpiryDate;

	@Column(name="PP_ISSUE_CITY")
	private String ppIssueCity;
	
	
	@Column(name="PP_STATUS")
	private String ppStatus;

	@Column(name="PP_ISSUE_COUNTRY")
	private String ppIssueCountry;

    @Temporal( TemporalType.DATE)
	@Column(name="PP_ISSUE_DATE")
	private Date ppIssueDate;

	//bi-directional many-to-one association to EmployeeDetail
    @OneToOne(fetch=FetchType.LAZY, cascade=CascadeType.ALL, optional=true)
	@PrimaryKeyJoinColumn
	private EmployeeDetail EmployeeDetail;

    public PassportDetail() {
    }

	public String getPpPsprtNo() {
		return this.ppPsprtNo;
	}

	public void setPpPsprtNo(String ppPsprtNo) {
		this.ppPsprtNo = ppPsprtNo;
	}
	
	public String getPpStatus() {
		return this.ppStatus;
	}

	public void setPpStatus(String ppStatus) {
		this.ppStatus = ppStatus;
	}

	public Date getPpExpiryDate() {
		return this.ppExpiryDate;
	}

	public void setPpExpiryDate(Date ppExpiryDate) {
		this.ppExpiryDate = ppExpiryDate;
	}

	public String getPpIssueCity() {
		return this.ppIssueCity;
	}

	public void setPpIssueCity(String ppIssueCity) {
		this.ppIssueCity = ppIssueCity;
	}

	public String getPpIssueCountry() {
		return this.ppIssueCountry;
	}

	public void setPpIssueCountry(String ppIssueCountry) {
		this.ppIssueCountry = ppIssueCountry;
	}

	public Date getPpIssueDate() {
		return this.ppIssueDate;
	}

	public void setPpIssueDate(Date ppIssueDate) {
		this.ppIssueDate = ppIssueDate;
	}

	public EmployeeDetail getEmployeeDetail() {
		return this.EmployeeDetail;
	}

	public void setEmployeeDetail(EmployeeDetail EmployeeDetail) {
		this.EmployeeDetail = EmployeeDetail;
	}

	public String getPpPsprtNameEng() {
		return ppPsprtNameEng;
	}

	public void setPpPsprtNameEng(String ppPsprtNameEng) {
		this.ppPsprtNameEng = ppPsprtNameEng;
	}

	public String getPpPsprtNameArb() {
		return ppPsprtNameArb;
	}

	public void setPpPsprtNameArb(String ppPsprtNameArb) {
		this.ppPsprtNameArb = ppPsprtNameArb;
	}

	public Long getApplicationId() {
		return applicationId;
	}

	public void setApplicationId(Long applicationId) {
		this.applicationId = applicationId;
	}
	
}